Shift registers are widely used in digital electronics. Shift registers shift the values in a series of registers a defined number of positions either to the left or to the right as determined by a control signal. A common application of shift registers is to convert data between serial and parallel formats. Data can be loaded into a shift register in parallel and then shifted out of the register one bit at time serially, and data can also be loaded into a shift register serially and output from the shift register can be provided in parallel format.
Serial shift registers are comprised of a series of interconnected flip-flops or latches that form registers. At each clock cycle the value in each register is shifted to the adjacent register. A control signal determines whether the register values are shifted to the left or to the right. A major drawback of serial shift registers is that serial shift registers only shift one register location per clock cycle. Therefore, to shift seven positions requires seven clock cycles.
Parallel shift registers perform the complete shift operation in a single clock cycle. Thus in contrast to a serial shift register where a seven position shift requires seven clock cycles, a parallel shift register performs the seven position shift operation in a single clock cycle. The trade-off for this improved performance is that parallel shift registers require substantially more hardware than serial shift registers. A typical implementation for a parallel shift register uses four layers of AND gates to implement the control logic which moves the register values to the appropriate positions based on the number of positions of the shift operation and the direction of the shift. In addition to the control logic hardware, there is also hardware required for loading new values into the shift register and providing clock control for the different hardware stages.
A new class of shift registers that provides higher performance than serial shift registers and requires less hardware than parallel shift registers would be highly desirable.